﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Data;

namespace FancyIdea.PingShui.Core.Dal
{
    public class 建筑操作
    {
        public static bool AddStreet(string 税务机关代码, string 街道代码, string 街道名称, float 单位面积租金参考,float 预警幅度)
        {
            string sql = @"insert into 街道表 (街道代码,税务机关代码,街道名称,单位面积租金参考,预警幅度) values ('" + 街道代码 +
                "','" + 税务机关代码 + "','" + 街道名称 + "'," + 单位面积租金参考 + ","+预警幅度+")";
            return CmdUtil.ExcuteNonQuery(sql);
        }

        public static bool UpdateStreet(string 税务机关代码, string 街道代码,
            string 街道名称, float 单位面积租金参考,float 预警幅度)
        {
            string sql = @"update 街道表 set 税务机关代码='" + 税务机关代码 + "',街道代码='" + 街道代码 + "',街道名称='" + 街道名称
                + "',单位面积租金参考=" + 单位面积租金参考 +
                ",预警幅度="+预警幅度+" where 街道代码='" + 街道代码 + "'";
            return CmdUtil.ExcuteNonQuery(sql);
        }

        public static DataTable GetStreet()
        {
            string sql = @"select * from 街道表";
            return CmdUtil.ExcuteDataTable(sql);
        }

        public static DataTable GetStreetDropDown()
        {
            string sql = @"select 街道代码 as value,街道名称 as text from 街道表";
            return CmdUtil.ExcuteDataTable(sql);
        }

        public static DataTable GetStreetDropDown(string 税务机关代码)
        {
            string sql = @"select 街道代码 as value,街道名称 as text from 街道表 
where 税务机关代码='"+税务机关代码+"'";
            return CmdUtil.ExcuteDataTable(sql);
        }

        public static DataRow GetStreet(string 街道代码)
        {
            string sql = @"select * from 街道表 where 街道代码='" + 街道代码 + "'";
            return CmdUtil.ExcuteDataRow(sql);
        }

        public static bool DeleteStreet(string 街道代码)
        {
            string sql = @"delete from 街道表 where 街道代码='" + 街道代码 + "'";
            return CmdUtil.ExcuteNonQuery(sql);
        }

        public static bool DeleteStreet(string[] 街道代码)
        {
            return CmdUtil.DeleteMuti("街道表", "街道代码", 街道代码);
        }

        public static bool AddBuilding(string 街道代码, string 建筑物代码, string 建筑物名称, int 建筑物楼层数, float 单位面积租金参考,
            float 预警幅度, float 自营房单位面积租金参考, float 自营房预警幅度, string 税务机关代码, 
            float 一层,float 二层,float 三层及以上)
        {
            string sql = @"insert into 建筑物表 (建筑物代码,街道代码,建筑物名称,建筑物楼层数,单位面积租金参考,预警幅度,
自营房单位面积租金参考,自营房预警幅度,税务机关代码,一层租金参考,二层租金参考,三层及以上租金参考) values ('" + 建筑物代码 + "','" + 街道代码 + "','" + 建筑物名称 + "'," + 建筑物楼层数
+ "," + 单位面积租金参考 + "," + 预警幅度 + "," + 自营房单位面积租金参考 + "," + 自营房预警幅度 + ",'" + 税务机关代码 +
"',"+一层+","+二层+","+三层及以上+")";
            return CmdUtil.ExcuteNonQuery(sql);
        }

        public static bool UpdateBuilding(string 街道代码, string 建筑物代码, string 建筑物名称, int 建筑物楼层数, float 单位面积租金参考,
            float 预警幅度, float 自营房单位面积租金参考, float 自营房预警幅度, string 税务机关代码,
            float 一层,float 二层,float 三层及以上)
        {
            string sql = @"update 建筑物表 set 街道代码='" + 街道代码 + "',建筑物代码='" + 建筑物代码 + "',建筑物名称='" + 建筑物名称
+ "',建筑物楼层数=" + 建筑物楼层数 + ",单位面积租金参考=" + 单位面积租金参考 + ",预警幅度=" + 预警幅度
+ ",自营房单位面积租金参考=" + 自营房单位面积租金参考
+ ",自营房预警幅度=" + 自营房预警幅度
+ ",一层租金参考=" + 一层 + ",二层租金参考=" + 二层 + ",三层及以上租金参考=" + 三层及以上 + " where 建筑物代码='" + 建筑物代码 + "' and 税务机关代码='" + 税务机关代码 + "'";
            return CmdUtil.ExcuteNonQuery(sql);
        }

        public static DataTable GetBuilding(string 街道代码)
        {
            string sql = @"select a.*,b.街道名称,b.街道代码　from 建筑物表 a
 left join 街道表 b on b.街道代码=a.街道代码 
where b.街道代码='" + 街道代码 + "'";
            return CmdUtil.ExcuteDataTable(sql);
        }

        public static DataTable GetBuildingDropDown()
        {
            string sql = @"select 建筑物代码 as value,建筑物名称 as text from 建筑物表";
            DataTable table = CmdUtil.ExcuteDataTable(sql);
            DataRow row = table.NewRow();
            row[0] = "";
            row[1] = "";
            table.Rows.InsertAt(row,0);
            return table;
        }

        public static DataTable GetBuildingDropDown(string 街道代码)
        {
            string sql = @"select 建筑物代码 as value,建筑物名称 as text from 建筑物表 
where 街道代码='" + 街道代码 + "'";
            DataTable table = CmdUtil.ExcuteDataTable(sql);
            DataRow row = table.NewRow();
            row[0] = "";
            row[1] = "";
            table.Rows.InsertAt(row, 0);
            return table;
        }

        public static DataTable GetBuildingDropDown(string 街道代码,string 税务机关代码)
        {
            string sql = @"select 建筑物代码 as value,建筑物名称 as text from 建筑物表 
where 街道代码='" + 街道代码 + "' and 税务机关代码='"+税务机关代码+"'";
            DataTable table = CmdUtil.ExcuteDataTable(sql);
            DataRow row = table.NewRow();
            row[0] = "";
            row[1] = "";
            table.Rows.InsertAt(row, 0);
            return table;
        }

        public static DataRow GetBuildingRow(string 建筑物代码)
        {
            string sql = @"select a.*,b.街道名称　from 建筑物表 a
 left join 街道表 b on b.街道代码=a.街道代码 
where a.建筑物代码='" + 建筑物代码 + "'";
            return CmdUtil.ExcuteDataRow(sql);
        }

        public static bool DeleteBuilding(string 建筑物代码)
        {
            string sql = @"delete from 建筑物表 where 建筑物代码='" + 建筑物代码 + "'";
            return CmdUtil.ExcuteNonQuery(sql);
        }

        public static bool DeleteBuilding(string[] 建筑物代码)
        {
            return CmdUtil.DeleteMuti("建筑物表", "建筑物代码", 建筑物代码);
        }

        public static bool AddFloor(string 街道代码, string 建筑物代码, string 楼层, float 单位面积租金参考,
            float 预警幅度, float 自营房单位面积租金参考, float 自营房预警幅度)
        {
            string sql = @"insert into 楼层表 (ID,街道代码,建筑物代码,楼层,单位面积租金参考,预警幅度,自营房单位面积租金参考,
自营房预警幅度
) values ((select nvl(max(id),0)+1 from 楼层表),'" + 街道代码 + "','" + 建筑物代码 + "','" + 楼层
           + "'," + 单位面积租金参考 + "," + 预警幅度 + "," + 自营房单位面积租金参考 + "," + 自营房预警幅度 + ")";
            return CmdUtil.ExcuteNonQuery(sql);
        }

        public static bool UpdateFloor(int ID, string 街道代码, string 建筑物代码, string 楼层, float 单位面积租金参考,
            float 预警幅度, float 自营房单位面积租金参考, float 自营房预警幅度)
        {
            string sql = @"update 楼层表 set 街道代码='" + 街道代码 + "',建筑物代码='" + 建筑物代码 + "',楼层='" + 楼层
           + "',单位面积租金参考=" + 单位面积租金参考 + ",预警幅度=" + 预警幅度 + ",自营房单位面积租金参考=" + 自营房单位面积租金参考
           + ",自营房预警幅度=" + 自营房预警幅度 + " where ID=" + ID;
            return CmdUtil.ExcuteNonQuery(sql);
        }

        public static DataTable GetFloor(string 建筑物代码)
        {
            string sql = @"select a.*,c.街道名称,c.街道代码,b.建筑物名称,b.建筑物代码　from 楼层表 a 
left join 建筑物表 b on b.建筑物代码=a.建筑物代码
left join 街道表 c on c.街道代码=b.街道代码 
where b.建筑物代码='" + 建筑物代码 + "'";
            return CmdUtil.ExcuteDataTable(sql);
        }

        public static DataTable GetFloorDropDown(string 建筑物代码)
        {
            string sql = @"select ID as value,楼层 as text from 楼层表 where 建筑物代码='" + 建筑物代码 + "'";
            return CmdUtil.ExcuteDataTable(sql);
        }

        public static DataRow GetFloorRow(int ID)
        {
            string sql = @"select a.*,c.街道名称,b.建筑物名称　from 楼层表 a 
left join 建筑物表 b on b.建筑物代码=a.建筑物代码
left join 街道表 c on c.街道代码=b.街道代码 
where a.ID=" + ID;
            return CmdUtil.ExcuteDataRow(sql);
        }

        public static bool DeleteFloor(int ID)
        {
            string sql = @"delete from 楼层表 where ID=" + ID;
            return CmdUtil.ExcuteNonQuery(sql);
        }

        //public static bool DeleteFloor(int[] IDs)
        //{
        //    //return CmdUtil.DeleteMuti("楼层表","ID", IDs);
        //}
    }
}